package lz.controls.events
{
	import flash.events.Event;
	/**
	 * ListEvent 类定义基于列表的组件（包括 List、DataGrid、TileList 和 ComboBox 组件）的事件。这些事件包括：
	 * ListEvent.ITEM_CLICK：用户在组件中的项目上单击鼠标以后调度。
	 * ListEvent.ITEM_DOUBLE_CLICK：用户在组件中的项目上快速连续单击鼠标两次以后调度。
	 * ListEvent.ITEM_ROLL_OUT：用户将鼠标指针从组件中的项目移开以后调度。
	 * ListEvent.ITEM_ROLL_OVER：用户在组件中的项目上悬停鼠标指针时调度。
	 */
	public class ListEvent extends Event
	{
		/**
         *  鼠标移出
		 */
		public static const ITEM_ROLL_OUT:String = "itemRollOut";
		/**
         * 鼠标移上
		 */
		public static const ITEM_ROLL_OVER:String = "itemRollOver";
		/**
         *  鼠标点击
		 */
		public static const ITEM_CLICK:String = "itemClick";
		/**
         * 鼠标双击
		 */
		public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick";
        /**
         *事件关联的项目的行索引。
		 */
		protected var _rowIndex:int;
        /**
         * 事件关联的项目的列索引。
		 */
		protected var _columnIndex:int;
        /**
         *包含渲染器的单元格的从零开始的索引。
         */
		protected var _index:int;
        /**
         *  获取属于当前单元格渲染器的数据。
         */
		protected var _item:Object;
		/**
		 * 使用指定的参数创建新的 ListEvent 对象。
		 * 参数
		 * type:String — 事件类型；该值标识引发事件的动作。
		 * bubbles:Boolean (default = false) — 指示该事件是否可以在显示列表层次结构得到冒泡处理。
		 * cancelable:Boolean (default = false) — 表示是否可以阻止与事件相关联的行为。
		 * columnIndex:int (default = -1) — 包含渲染器的列的从零开始的索引或列中数据的可视表示形式。
		 * rowIndex:int (default = -1) — 包含渲染器的行的从零开始的索引或行中数据的可视表示形式。
		 * index:int (default = -1) — DataProvider 中项目的索引（从零开始）。
		 * item:Object (default = null) — 对属于渲染器的数据的引用。
		 */
		public function ListEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, columnIndex:int=-1, rowIndex:int=-1, index:int=-1, item:Object=null)
		{
			super(type, bubbles, cancelable);
			_rowIndex = rowIndex;
			_columnIndex = columnIndex;
			_index = index;
			_item = item;
		}
		/**
		 *  获取与此事件关联的项目的行索引。
		 */
		public function get rowIndex():Object 
		{
			return _rowIndex;
		}
		/**
		 * 获取与此事件关联的项目的列索引。
		 */
		public function get columnIndex():int 
		{
			return _columnIndex;
		}
		/**
         * 获取包含渲染器的单元格的从零开始的索引。
		 */
		public function get index():int 
		{
			return _index;
		}
		/**
         * 获取属于当前单元格渲染器的数据。
		 */
		 public function get item():Object 
		 {
			 return _item;
		}
		/**
		 * 返回一个字符串，其中包含 ListEvent 对象的所有属性。
		 */
		override public function toString():String 
		{
			return formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item");
		}
		/**
		 * 创建 ListEvent 对象的副本，并设置每个参数的值以匹配原始参数值。
		 */
		override public function clone():Event 
		{
			return new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex);
		}
	}

}